package com.pick.admin.service;

import com.pick.admin.dto.LoginResponse;
import com.pick.admin.entity.SysMenu;
import com.pick.admin.entity.SysUser;

import java.util.List;

/**
 * 认证服务接口
 */
public interface AuthService {

    /**
     * 用户登录
     * @param username 用户名
     * @param password 密码
     * @return 登录响应信息
     */
    LoginResponse login(String username, String password);

    /**
     * 用户登出
     */
    void logout();

    /**
     * 获取当前登录用户信息
     */
    SysUser getCurrentUser();

    /**
     * 获取当前用户菜单
     */
    List<SysMenu> getCurrentUserMenus();

    /**
     * 获取当前用户权限编码列表
     */
    List<String> getCurrentUserPermissions();

    /**
     * 获取当前用户角色编码列表
     */
    List<String> getCurrentUserRoles();

    /**
     * 用户注册
     * @param username 用户名
     * @param password 密码
     * @param realName 真实姓名
     * @param email 邮箱
     * @param mobile 手机号
     * @return 注册成功的用户信息
     */
    SysUser register(String username, String password, String realName, String email, String mobile);
}